package com.dftc.db;


import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;

/** 
* @author SZQ 
* @db
* @version 
* @创建时间：2016年3月3日 上午11:37:05 
* @类说明 redis 操作类
*/
public class RedisUtil {
	private static JedisPool jedisPool;
	private static Jedis jedis;
	public static final String redis_srv_ip = "127.0.0.1";


	//初始化连接池
	static {
		JedisPoolConfig config = new JedisPoolConfig();
		config.setMaxTotal(128);
		config.setMinIdle(10);
		config.setMaxIdle(128);
		config.setMaxWaitMillis(30000l);
		config.setTestOnBorrow(false);
		jedisPool = new JedisPool(config, redis_srv_ip, 6379, 0);
	}
	
	//获取 jedis 实例
	public static synchronized Jedis getJedis(){
		if(jedis == null){
			jedis = jedisPool.getResource();
		}
		return jedis;
	}
	
	//jedis 实例放回pool
	public static void closeJedis(Jedis jedis){
		if(jedis != null){
			jedisPool.returnResource(jedis);
		}
	}
	
	public static void main(String[] args) {
		RedisUtil.getValue(null);
		keyIsExist("");
	}


	/**   
	 * @Description: TODO(判断key是否存在) 
	 * @author SZQ   
	 * @date 2016年3月3日 下午2:27:40 
	 * @version V1.0   
	 */
	public static boolean keyIsExist(String key) {
	      jedis = RedisUtil.getJedis();
	      boolean ret =     jedis.exists(key);
	      RedisUtil.closeJedis(jedis);
	      return ret;
	}

	/**   
	 * @Description: TODO(根据key 获取 value) 
	 * @author SZQ   
	 * @date 2016年3月3日 下午1:57:44 
	 * @version V1.0   
	 */
	public static String getValue(String key) {
		String value = null;
		jedis = RedisUtil.getJedis();
		value = jedis.get(key);
		RedisUtil.closeJedis(jedis);
		return value;
	}
	
	/**   
	 * @Description: TODO(存入key value) 
	 * @author SZQ   
	 * @date 2016年3月3日 下午1:57:44 
	 * @version V1.0   
	 */
	public static String setToRedis(String key ,String value){
		String ret = "";
		jedis = RedisUtil.getJedis();
		try{
			ret =  jedis.set(key, value);
		}catch(Exception e){
			ret = "fail";
		}
		RedisUtil.closeJedis(jedis);
		return ret;
	}
}
